package thefirst.member.model;

import java.sql.SQLException;
import java.util.List;

import thefirst.LessonBoard.model.LessonBoardVO;
import thefirst.code.model.CodeVO;
import thefirst.support.model.NoticeListVO;

public interface MemberService {
	public void registerMember(MemberVO mvo) throws SQLException;
	public MemberVO showMember(MemberVO mvo) throws SQLException;
	public MemberVO	updateMember(MemberVO mvo) throws SQLException;
	public int isExistId(MemberVO mvo) throws SQLException;
	public MemberVO	updateTeacher(TeacherVO tvo) throws SQLException;
	public MemberVO	updateStudent(StudentVO svo) throws SQLException;
	public MemberVO login(MemberVO mvo) throws SQLException;
	
	public StudentListVO getStudentListBasic(String pageNo) throws SQLException;//학생찾기 첫 페이지 가져오기
	public List<CodeVO> sidoList() throws SQLException;	//코드마스터에서 희망지역(시도)리스트 가져온다.	
	public List<CodeVO> hopeSubjectList() throws SQLException;//코드마스터에서 희망과목리스트 가져온다.
	public List<CodeVO> genderList() throws SQLException;//코드마스터에서 성별리스트 가져온다.
	public List<CodeVO> gradeList() throws SQLException;// 코드마스터에서 학년리스트 가져온다.
	public List<CodeVO> gugunList(String code_type) throws SQLException;//코드마스터에서 구군리스트 가져온다.
	public List<String> getUniversityName(String term) throws SQLException;	 //출신학교별 검색에서 대학명 autocomplete 에 필요한 메서드
	
	public StudentListVO getStudentRegionList(String pageNo) throws SQLException;// 학생찾기페이지-지역별tab-첫페이지 가져오기
	public StudentListVO getStudentSubjectList(String pageNo) throws SQLException;// 학생찾기페이지-과목별tab-첫페이지 가져오기
	public StudentListVO getStudentGradeList(String pageNo) throws SQLException;// 학생찾기페이지-학년별tab-첫페이지 가져오기	
	public StudentListVO getSearchStudentbyGrade(MemberSearchVO memberSearchVO) throws SQLException;//학생찾기페이지-학년별tab-학년과 이름을 받아서 검색
	public StudentListVO getSearchStudentbySubject(MemberSearchVO memberSearchVO) throws SQLException;//학생찾기페이지-과목별tab-희망과목과 이름을 받아서 검색
	public StudentListVO getSearchStudentbyRegion(MemberSearchVO memberSearchVO) throws SQLException;//학생찾기페이지-지역별tab-희망지역과 이름을 받아서 검색
	public StudentListVO getSearchStudentbyTotal(MemberSearchVO memberSearchVO) throws SQLException;//학생찾기페이지-전체보기tab-희망지역, 이름,  학년, 성별, 희망과목을 받아서 검색

	public TeacherListVO getTeacherListBasic(String pageNo) throws SQLException;//선생님찾기 첫 페이지 가져오기
	public TeacherListVO getTeacherRegionList(MemberSearchVO msvo) throws SQLException;// 선생님찾기페이지-지역별tab-첫페이지 가져오기
	public TeacherListVO getTeacherSubjectList(MemberSearchVO msvo) throws SQLException;// 선생님찾기페이지-과목별tab-첫페이지 가져오기
	public TeacherListVO getTeacherUniversityList(MemberSearchVO msvo) throws SQLException;// 선생님찾기페이지-학년별tab-첫페이지 가져오기	
	public TeacherListVO getSearchTeacherbyUniversity(MemberSearchVO msvo) throws SQLException;//선생님찾기페이지-출신학교별tab-대학명과 이름을 받아서 검색
	public TeacherListVO getSearchTeacherbySubject(MemberSearchVO msvo) throws SQLException;//선생님찾기페이지-과목별tab-희망과목과 이름을 받아서 검색
	public TeacherListVO getSearchTeacherbyRegion(MemberSearchVO msvo) throws SQLException;//선생님찾기페이지-지역별tab-희망지역과 이름을 받아서 검색
	public TeacherListVO getSearchTeacherbyTotal(MemberSearchVO msvo) throws SQLException;//선생님찾기페이지-전체보기tab-희망지역, 이름,  학년, 성별, 희망과목을 받아서 검색
	
	public String findIdByNameEmail(MemberVO mvo) throws SQLException;
	public MemberListVO getListForAdmin(String pageNo) throws SQLException;
	public void withdrawalMember(MemberVO mvo) throws SQLException;
	public MemberVO findQPassByIdEmail(MemberVO mvo) throws SQLException;
	public String findPasswordByQnAPass(MemberVO mvo) throws SQLException;
	public List<CodeVO> passwordList() throws SQLException; //비밀번호 찾기 첫 페이지에서 코드마스터에서 비밀번호리스트 가져온다.
	
	public MyHelpListVO myHelpList(MyHelpVO myHelpVO) throws SQLException;//나의 문의내역 리스트를 가져온다
	
	public StudentListVO getStudentListOrderByName(String pageNo) throws SQLException;
	public TeacherListVO getTeacherListOrderByName(String pageNo) throws SQLException;
	
	public StudentListVO getStudentListOrderByDate(String pageNo) throws SQLException;
	public TeacherListVO getTeacherListOrderByDate(String pageNo) throws SQLException;
	public StudentVO getStudentInfobyId(StudentVO svo)throws SQLException;	//학생 id 를 받아서 학생정보를 가져온다.
	public TeacherVO getTeacherInfobyId(TeacherVO tvo)throws SQLException;	//선생님 id 를 받아서 선생님정보를 가져온다.	
	
	public List<StudentVO> getStudentListForLeft() throws SQLException;
	public List<TeacherVO> getTeacherListForLeft() throws SQLException;
}
